const SearchResult = new Lang.Class({
Name: 'SearchResult',
- _init: function(provider, metaInfo, terms) {
+ _init: function(provider, metaInfo) {
this.provider = provider;
this.metaInfo = metaInfo;
- this.terms = terms;
this.actor = new St.Button({ reactive: true,
can_focus: true,
y_fill: true });
this.actor._delegate = this;
- this.actor.connect('clicked', Lang.bind(this, this.activate));
+ this.actor.connect('clicked', Lang.bind(this, this._activate));
},
- activate: function() {
- this.provider.activateResult(this.metaInfo.id, this.terms);
- Main.overview.toggle();
+ _activate: function() {
+ this.emit('activate', this.metaInfo.id);
},
setSelected: function(selected) {
this.actor.remove_style_pseudo_class('selected');
}
});
+Signals.addSignalMethods(SearchResult.prototype);
const ListSearchResult = new Lang.Class({
Name: 'ListSearchResult',
ICON_SIZE: 64,
- _init: function(provider, metaInfo, terms) {
- this.parent(provider, metaInfo, terms);
+ _init: function(provider, metaInfo) {
+ this.parent(provider, metaInfo);
this.actor.style_class = 'list-search-result';
this.actor.x_fill = true;
Name: 'GridSearchResult',
Extends: SearchResult,
- _init: function(provider, metaInfo, terms) {
- this.parent(provider, metaInfo, terms);
+ _init: function(provider, metaInfo) {
+ this.parent(provider, metaInfo);
this.actor.style_class = 'grid-search-result';
- let content = provider.createResultObject(metaInfo, terms);
+ let content = provider.createResultObject(metaInfo);
let dragSource = null;
if (content == null) {
this.emit('key-focus-in', actor);
},
+ _activateResult: function(result, id) {
+ return this.provider.activateResult(id, this._terms);
+ },
+
_setMoreIconVisible: function(visible) {
},
_renderResults: function(metas) {
for (let i = 0; i < metas.length; i++) {
- let display = new ListSearchResult(this.provider, metas[i], this._terms);
+ let display = new ListSearchResult(this.provider, metas[i]);
+ display.connect('activate', Lang.bind(this, this._activateResult));
display.actor.connect('key-focus-in', Lang.bind(this, this._keyFocusIn));
this._content.add_actor(display.actor);
}
_renderResults: function(metas) {
for (let i = 0; i < metas.length; i++) {
- let display = new GridSearchResult(this.provider, metas[i], this._terms);
+ let display = new GridSearchResult(this.provider, metas[i]);
+ display.connect('activate', Lang.bind(this, this._activateResult));
display.actor.connect('key-focus-in', Lang.bind(this, this._keyFocusIn));
this._grid.addItem(display);
}